package xijia.plus.docs.thymeleafuser.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import xijia.plus.docs.thymeleafuser.service.ErrorService;

import javax.servlet.http.HttpServletRequest;


/**
 * 错误请求入口
 * <p>
 * 包括系统 400/404/500等错误
 * </P>
 *
 * @author wangsong
 * @version 1.0.0
 * @mail 1720696548@qq.com
 * @date 2022/10/13 0013 20:37
 */
@Controller
public class ErrorPageController {

    @Autowired
    private ErrorService errorService;
    @Autowired
    private HttpServletRequest request;


    /**
     * 所有的404 拦截 / 500 拦截等
     * <p>
     * 拦截所有无效请求：http://localhost:10003/111/2222/333
     * 拦截所有无效页面：http://localhost:10003/111/2222/333.html
     * </P>
     * //  forward 转发
     * //  redirect 重定向
     *
     * @author wangsong
     * @mail 1720696548@qq.com
     * @date 2022/10/28 0028 14:30
     * @version 1.0.0
     */
//    @RequestMapping("/*") //"/error/{code}.html"
//    public String error(Model model) {
//        model.addAttribute("addrId", AddrUtil.getIpAddr(request));
//        errorService.error404(model);
//        return "error/404.html";
//    }

    /**
     * 所有的404 拦截 / 500 拦截等
     * <p>
     * 拦截所有无效请求：http://localhost:10003/111/2222/333
     * 拦截所有无效页面：http://localhost:10003/111/2222/333.html
     * </P>
     * //  forward 转发
     * //  redirect 重定向
     *
     * @author wangsong
     * @mail 1720696548@qq.com
     * @date 2022/10/28 0028 14:30
     * @version 1.0.0
     */
    @RequestMapping({"/error/{code}", "/error/{code}.html"})
    public String error(@PathVariable Integer code, Model model) {
        if (code == 404) {
            errorService.error404(model);
            return "error/404.html";
        } else {
            return "error/500.html";
        }
    }
}

